<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
<head>
  <link href="//gmpg.org/xfn/11" rel="profile">
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="generator" content="Hugo 0.69.0" />

  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>django的一些常识 &middot; 郝朝帅的博客</title>

  
  <link type="text/css" rel="stylesheet" href="/blog/css/print.css" media="print">
  <link type="text/css" rel="stylesheet" href="/blog/css/poole.css">
  <link type="text/css" rel="stylesheet" href="/blog/css/syntax.css">
  <link type="text/css" rel="stylesheet" href="/blog/css/hyde.css">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Abril+Fatface|PT+Sans:400,400i,700">


  
  <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/apple-touch-icon-144-precomposed.png">
  <link rel="shortcut icon" href="/favicon.png">

  
  
</head>

  <body class="theme-base-0f ">
  <aside class="sidebar">
  <div class="container sidebar-sticky">
    <div class="sidebar-about">
      <a href="/blog/"><h1>郝朝帅的博客</h1></a>
      <p class="lead">
       我的个人博客 
      </p>
    </div>

    <nav>
      <ul class="sidebar-nav">
        <li><a href="/blog/">Home</a> </li>
        
      </ul>
    </nav>

    <p>&copy; 2020. All rights reserved. </p>
  </div>
</aside>

    <main class="content container">
    <div class="post">
  <h1>django的一些常识</h1>
  <time datetime=2020-04-27T20:05:03&#43;0800 class="post-date">Mon, Apr 27, 2020</time>
  <h6 id="安装django">安装django</h6>
<p>pip install django==2.0.4</p>
<h6 id="django的一些理论">django的一些理论</h6>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-python" data-lang="python"><span style="color:#960050;background-color:#1e0010">项目可以包含多个应用，</span> <span style="color:#960050;background-color:#1e0010">应用可以被多个项目使用</span>

MTV模式
	M:model<span style="color:#960050;background-color:#1e0010">，模型，负责与数据库交互</span>
	V:view<span style="color:#960050;background-color:#1e0010">，视图是核心，负责接收请求、获取数据、返回结果</span>
	T:template<span style="color:#960050;background-color:#1e0010">，模板，负责呈现内容到浏览器</span>

MVC模式
	M<span style="color:#960050;background-color:#1e0010">：</span>model<span style="color:#960050;background-color:#1e0010">（模型）</span> <span style="color:#f92672">-</span> <span style="color:#960050;background-color:#1e0010">模型代表一个存取数据的对象或</span> JAVA POJO<span style="color:#960050;background-color:#1e0010">。它也可以带有逻辑，在数据变化时更新控制器。</span>
	V<span style="color:#960050;background-color:#1e0010">：</span>view<span style="color:#960050;background-color:#1e0010">（视图）</span> <span style="color:#f92672">-</span> <span style="color:#960050;background-color:#1e0010">视图代表模型包含的数据的可视化。</span>
	C<span style="color:#960050;background-color:#1e0010">：</span>controller<span style="color:#960050;background-color:#1e0010">（控制器）</span> <span style="color:#f92672">-</span> <span style="color:#960050;background-color:#1e0010">控制器作用于模型和视图上。它控制数据流向模型对象，并在数据变化时更新视图。它使视图与模型分离开</span>
 <span style="color:#e6db74">&#39;&#39;&#39;
</span><span style="color:#e6db74"> 从结构上看，MVC可以分成三层。
</span><span style="color:#e6db74">
</span><span style="color:#e6db74">1）最上面的一层，是直接面向用户的&#34;视图层&#34;（View）。它是提供给用户的操作界面，是程序的外壳。
</span><span style="color:#e6db74">
</span><span style="color:#e6db74">2）最底下的一层，是核心的&#34;数据层&#34;（Model），也就是程序需要操作的数据或信息。
</span><span style="color:#e6db74">
</span><span style="color:#e6db74">3）中间的一层，就是&#34;控制层&#34;（Controller），它负责根据用户从&#34;视图层&#34;输入的指令，选取&#34;数据层&#34;中的数据，然后对其进行相应的操作，产生最终的视图结果。
</span><span style="color:#e6db74"> &#39;&#39;&#39;</span>   
 

<span style="color:#960050;background-color:#1e0010">通常</span> <span style="color:#960050;background-color:#1e0010">一个</span>Django model <span style="color:#960050;background-color:#1e0010">对应一张数据表，</span>model是以类的形式表现的
<span style="color:#960050;background-color:#1e0010">实现了</span>ORM <span style="color:#960050;background-color:#1e0010">对象与数据库映射</span> <span style="color:#960050;background-color:#1e0010">隐藏了数据访问细节</span> <span style="color:#960050;background-color:#1e0010">不需要写</span>sql语句

<span style="color:#960050;background-color:#1e0010">数据取出顺序</span> models<span style="color:#f92672">-&gt;</span>views<span style="color:#f92672">-&gt;</span>templates  <span style="color:#960050;background-color:#1e0010">数据层</span><span style="color:#f92672">-&gt;</span><span style="color:#960050;background-color:#1e0010">逻辑视图层</span><span style="color:#f92672">-&gt;</span><span style="color:#960050;background-color:#1e0010">前端模板层</span>
</code></pre></div><h4 id="django命令">django命令</h4>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-python" data-lang="python"><span style="color:#75715e"># 创建django项目</span>
django<span style="color:#f92672">-</span>admin startproject <span style="color:#960050;background-color:#1e0010">项目名</span>

<span style="color:#75715e"># 进入django项目</span>
cd <span style="color:#960050;background-color:#1e0010">项目名</span>

<span style="color:#75715e"># 创建项目app</span>
python manage<span style="color:#f92672">.</span>py startapp APPNAME

<span style="color:#75715e"># 数据库迁移</span>
python manage<span style="color:#f92672">.</span>py makemigrations app名<span style="color:#960050;background-color:#1e0010">（缺省）</span>        <span style="color:#f92672">//</span><span style="color:#960050;background-color:#1e0010">准备数据在</span>manage<span style="color:#f92672">.</span>py同级目录下运行
python manage<span style="color:#f92672">.</span>py migrate

<span style="color:#75715e"># 启动django项目</span>
python manage<span style="color:#f92672">.</span>py runserver
</code></pre></div><h3 id="django项目结构">django项目结构</h3>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-python" data-lang="python">
my_project		<span style="color:#75715e">#	项目名 后期可修改建议不修改</span>
	__init__<span style="color:#f92672">.</span>py	<span style="color:#75715e">#	python项目必带  模块化思想</span>
	settings<span style="color:#f92672">.</span>py	<span style="color:#75715e">#	项目的总配置文件  里面包含数据库 web应用 时间等各种配置</span>
	urls<span style="color:#f92672">.</span>py		<span style="color:#75715e">#	URL配置文件  Django项目的视图接口，需要我们自己去配置其URL</span>
	wsgi<span style="color:#f92672">.</span>py		<span style="color:#75715e">#	python服务器网关接口</span>
	manage<span style="color:#f92672">.</span>py	<span style="color:#75715e">#	django项目管理文件 与项目进行交互的命令行工具集的入口</span>
<span style="color:#f92672">------------------------------------------------------------------------</span>


</code></pre></div><h6 id="django项目下的应用结构">django项目下的应用结构</h6>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-python" data-lang="python">project1
	migrations	<span style="color:#75715e">#数据移植（迁移）模块</span>
		__init__<span style="color:#f92672">.</span>py
	__init__<span style="color:#f92672">.</span>py
	admin<span style="color:#f92672">.</span>py	<span style="color:#75715e">#该应用后台管理系统配置--&gt;admin是Django自带的    自动化数据管理界面</span>
	apps<span style="color:#f92672">.</span>py		<span style="color:#75715e">#该应用的一些配置 </span>
	models<span style="color:#f92672">.</span>py	<span style="color:#75715e">#数据模型模块文件</span>
	tests<span style="color:#f92672">.</span>py	<span style="color:#75715e">#自动化测试模块  在这里编写测试脚本</span>
	views<span style="color:#f92672">.</span>py	<span style="color:#75715e">#逻辑处理的代码所在的文件 --&gt; 项目大部分代码在此编写</span>
	templates	<span style="color:#75715e">#模板 (自己添加的)放置页面模板文件的文件夹 -&gt; 包括HTML css JavaScript的文件夹</span>
</code></pre></div><p>django配置文件里的一些配置</p>
<ul>
<li>
<p>settings.py</p>
<ul>
<li>
<p>本地化</p>
<ul>
<li>LANGUAGE_CODE=zh-Hans</li>
<li>USE_I18N</li>
<li>USE_L10N</li>
</ul>
</li>
<li>
<p>项目中导入应用</p>
<ul>
<li>INSTALLED_APPS</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="步骤">步骤</h2>
<h3 id="1-创建项目">1. 创建项目</h3>
<p>django-admin startproject 项目名称</p>
<ul>
<li>
<ol start="3">
<li>settings.py</li>
</ol>
<ul>
<li>
<p>INSTALLED_APPS</p>
<p>添加应用</p>
</li>
<li>
<p>本地化</p>
<ul>
<li>LANGUAGE_CODE</li>
<li>USE_I18N</li>
<li>USE_L10N</li>
</ul>
</li>
</ul>
</li>
<li>
<ol start="2">
<li>创建应用</li>
</ol>
<p>python manage.py startapp helloworld</p>
<ul>
<li>
<p>4.views.py</p>
<p>视图文件</p>
<p>创建一个视图函数
需要一个参数 request
返回HttpResponse</p>
</li>
<li>
<p>urls.py</p>
<ul>
<li>
<p>urlpatterns</p>
<p>数组</p>
<ul>
<li>
<p>path</p>
<p>path(路径， 视图， name=名称)</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>urls.py</p>
<ul>
<li>
<p>关联应用url</p>
<p>include(&lsquo;应用名称.urls&rsquo;)</p>
</li>
</ul>
</li>
</ul>

</div>


    </main>

    
  </body>
</html>
